#ifndef CHANNELSELECT_H
#define CHANNELSELECT_H

#include <QWidget>
#include <QPushButton>
#include <QListWidget>

#include "Point.h"

class ChannelSelectWidget : public QWidget
{
    Q_OBJECT
public:
    explicit ChannelSelectWidget(QWidget *parent = nullptr);

    void SetPoints(const QList<QSharedPointer<Point>> &points);

signals:
    void SignalShowPoints(const QStringList &ids);

private:
    void Init();
    void InitHideWidget();
    void InitOptWidget();
    void InitShowWidget();
    void ClearListWidget();

private slots:
    void SlotAddButtonClicked();
    void SlotSubtractButtonClicked();
    void SlotConfirmButtonClicked();

private:
    QWidget *hideWidget{ nullptr };
    QWidget *optWidget{ nullptr };
    QWidget *showWidget{ nullptr };

    QListWidget *hideListWidget{ nullptr };
    QListWidget *showListWidget{ nullptr };

    QPushButton *addButton{ nullptr };
    QPushButton *subtractButton{ nullptr };
    QPushButton *confirmButton{ nullptr };
};

#endif // CHANNELSELECT_H
